/**
 * 1. var：全局变量，可以重复申明
 * 2. let：局部变量，仅可申明一次
 * 3. const：常量定义，必须初始化复制且不能被修改（局部变量）
 */

{
    var a = 0;
    let r = 2;
    const PI = Math.PI;
    a = PI * r * r;
}

console.log(a);
// console.log(r); // r is not defined
// console.log(PI); // PI is not defined

/**
 * 在 ES6 中共有 7 种基本数据类型：undefined、null、Boolean、String、Number、Object、Symbol
 * undefined（未定义）：表示变量未初始化，属性不存在，函数没有返回值
 * null（空值）：表示变量为空值
 * Boolean（布尔值）：true 或 false
 * String（字符串）：单引号字符串 ‘’  或 双引号字符串 ""
 * Number（数值）：范围 [-2^53, 2^53]
 * Object（对象）：表示属性的集合，其中每个属性由“名/值对”构成
 * Symbol（符号）：表示独一无二（ES6 新增）
 */
let a = new String()
let b = new Number()
let c = new Boolean()
let e = new Object()
let d = new Symbol()